package com.zhp.service;

import com.zhp.model.Article;
import com.zhp.model.Favorite;
import com.zhp.model.User;

import java.util.List;
import java.util.Map;

public interface ArticleService {

    /**
     * 找到所有的文章
     * @param uId   用户id
     * @param currentPage  当前页
     * @param name  模糊查询
     * @return
     */
    List<Map<String, Object>>  getArticles(String uId,int currentPage, String name);

    /**
     * 找到所有被我收藏的文章
     * @param uId    用户id
     * @param currentPage  当前页
     * @param name  模糊查询
     * @return
     */
    List<Map<String, Object>>  getMyArticles(String uId,int currentPage, String name);

    /**
     * 获得所有文章的总数
     * @param name 模糊查询名字
     * @return
     */
    long getArticleCount(String name);

    /**
     * 获得所有被关注的文章的总数
     * @param name 模糊查询名字
     * @return
     */
    long getMyArticleCount(String uid,String name);

    /**
     * 根据id，查询文章的详情
     * @param id 文章id
     * @return
     */
    Article findByid(String id);

    /**
     * 根据文章id，查询被收藏了多少次
     * @param id 文章id
     * @return
     */
    Number getfavorite(String id);

    /**
     *
     * 查询我关注的人中，关注当前id文章的人，都有谁
     * @param id
     * @return
     */
    List<User> getUserFavorite(String id);

    /**
     * 发表文章功能
     * @param article 文章对象
     * @return
     */
    int addArticle(Article article);

    /**
     * 添加收藏文章的记录
     * @param favorite
     * @return
     */
    int addFavorite(Favorite favorite);

    /**
     * 删除收藏文章的记录
     * @param uId
     * @param aId
     * @return
     */
    int delFavorite(String uId, String aId);

    /**
     * 更新文章信息
     * @param article 文章对象
     * @return
     */
    int update(Article article);

}
